Computer applications excel at processing and presenting data to various users for various purposes. As computers and computer applications have advanced and become more readily available, component-based applications have emerged and gained popularity. Component-based applications are computer applications that are made up of multiple, independent or related components that are displayed in a unified interface. Each component typically uses a different data source to supply its presentation. Examples of such component-based applications are Web portals, dashboards, and the like.
Portals are essentially Web-accessible “pages” made up of multiple, independent pods or portlets that are arranged on the page for presentation of information to the portal user. Each pod or portlet generally consumes a data feed that is separate and independent from the data feeds of other pods or portlets. One additional feature of many portals is the user's ability to customize the layout of the pods. On a portal site, the user may rearrange the pods or change the pods or portlets that are displayed in order to customize or personalize the portal.
Portal providers typically establish portal servers to generate the hypertext markup language (HTML) document that makes up the portal that is then downloaded to the client Web browser. The logic to create the collection of pods and portlets, as well as the connections between the pods and the data sources, are typically controlled by the portal server. Once the data is retrieved, the portal server generates the HTML that displays each individual pod or portlet. This completed HTML document is then downloaded to the client Web browser for display. Thus, each time the underlying data changes, or the user decides to change something in the portal that requires a re-rendering of the display, the portal server obtains the new data and generates the new HTML file that represents the change. This request-regeneration process disrupts the flow of the user experience and generally requires the HTML page to be completely re-rendered even if the only data change occurs in a single pod or portlet or only a portion thereof.
Portal standards have only recently been proposed that attempt to define standard Application Programming Interfaces (API) for creating portlets. Standards such as JAVA™ Specification Request (JSR) 168 and Web Services for Remote Portlets (WSRP) define a standard API for creating portlets that maybe used or use data in any JSR 168 and/or WSRP-compliant portal system. Prior to these proposed standards, each version of an application typically used its own portlet API, and each of the various portals required that these portlets be specifically tailored for implementation on that specific portal. However, even with the advent of the JSR 168 and WSRP standards, each such compliant portlet still remains separate from any other portlet within the portal.
Another example of component-based applications, dashboards, are display visual interfaces that present data to users in monitoring-type applications. For example, an industrial Human-Machine Interface (HMI) and Supervisory Control and Data Acquisition (SCADA) applications are software that monitor various sensors in an industrial setting and usually graphically present the measurements or processed measurements in a dashboard on the client computer or monitor. Each component on the dashboard generally receives its data from a different data source. One component may receive data on the temperature from a temperature sensor, which is displayed to the user, while another component receives data on the pressure of another process from a Programmable Logic Controller (PLC) with a sensor that detects pressure, which is displayed to the user in a different manner.
Dashboards for such applications as HMI and SCADA applications typically use static design layouts in the client interface. Thus, the visual display is usually pre-defined by the HMI/SCADA developer and resides on the client interface. The HMI/SCADA application typically only receives a data stream from the associated sensor that is used in the display. The application processes the data and populates the visual display with the resulting information.